/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package CapaSeguridad;


import org.jasypt.encryption.pbe.StandardPBEStringEncryptor;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

/**
 *
 * @author W
 */

public class criptografia {
    
//Algoritmos de ecnriptación
    
    public static String MD2 = "MD2";
    public static String MD5 = "MD5";
    public static String SHA1 = "SHA-1";
    public static String SHA256 = "SHA-256";
    public static String SHA384 = "SHA-384";
    public static String SHA512 = "SHA-512";
    
    private static String toHexadecimal(byte[] digest){
        String hash = "";
        for(byte aux : digest) {
            int b = aux & 0xff;
            if (Integer.toHexString(b).length() == 1) hash += "0";
            hash += Integer.toHexString(b);
        }//fin for
        return hash;
    }//fin toHexadecimal    
    
    public static String ConvertirString (String var, String algoritmo){
        byte[] digest = null;
        byte[] buffer = var.getBytes();
        try {
            MessageDigest messageDigest = MessageDigest.getInstance(algoritmo);
            messageDigest.reset();
            messageDigest.update(buffer);
            digest = messageDigest.digest();
        } catch (NoSuchAlgorithmException ex) {
            System.out.println("Error en ecnriptación");
        }
        return toHexadecimal(digest);
        
        /*Para acceder a este método se puede utilizar de esta forma:
            String mensaje = "Hola mundo";
            System.out.println("Mensaje = " + mensaje);
            System.out.println("MD2 = " + criptografia.ConvertirString(mensaje, criptografia.MD2));
            System.out.println("MD5 = " + criptografia.ConvertirString(mensaje, criptografia.MD5));
            System.out.println("SHA-1 = " + criptografia.ConvertirString(mensaje, criptografia.SHA1));
            System.out.println("SHA-256 = " + criptografia.ConvertirString(mensaje, criptografia.SHA256));
            System.out.println("SHA-384 = " + criptografia.ConvertirString(mensaje, criptografia.SHA384));
            System.out.println("SHA-512 = " + criptografia.ConvertirString(mensaje, criptografia.SHA512)); 
         */       
        
    }//fin ConvertirString
    
    public static String Encriptar(String var) { 
        StandardPBEStringEncryptor s = new StandardPBEStringEncryptor(); 
        s.setPassword("uniquekey"); 
        return s.encrypt(var); 
    }//fin Encriptar 
    
    public static String Desencriptar(String var) { 
        StandardPBEStringEncryptor s = new StandardPBEStringEncryptor(); 
        s.setPassword("uniquekey"); 
        String devuelve = ""; 
        try { 
            devuelve = s.decrypt(var); 
        } catch (Exception e) { 
        }//end catch 
        return devuelve; 
    }//fin Desencriptar 
}//end criptografia

